//JQ插件其实就是匿名函数自调用:避免全局变量相互污染
//参数window对象作用：
//  1.减少匿名函数中使用window对象查找过程
//  2.方便后期减少代码体积
//参数undefined作用：避免ie678兼容性问题
(function(window,undefined){
    //构造函数
    var jQuery = function(selector){
        return new jQuery.fn.init(selector);
    }
    //原型对象赋值
    jQuery.fn = jQuery.prototype={
        html(){
             
              // console.log('JQ的HTML方法')
            // console.log(this)

        },
        css(cssAttr,cssVal){
            //this是个对象
            for(let index in this){
                var mark = parseInt(index)
                if(!isNaN(mark)){
                    // console.log(this[index])
                    this[index].style[cssAttr] = cssVal
                }
            }
            // console.log('css的HTML方法')
        }
    }

    jQuery.fn.init = function(selector){
         //获取所有元素
         let element = document.querySelectorAll(selector)
         for(let i=0;i<element.length;i++){
             this[i] = element[i];
         }
         //单独增加length属性
         this.length = element.length;
    }
    jQuery.fn.init.prototype = jQuery.fn;
    window.jQuery = window.$ =jQuery;//最后一个jQuery是变量
})(window);